home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 May / EnigmA AMIGA RUN 18 (1997)(G.R. Edizioni)(IT)[!][issue 1997-05][EAR-CD II].iso / programs / write / rexx / empty.wrx next >
Text File  |  1996-09-18  |  3KB  |  130 lines

  1. /*
  2.  * WRITE 5.0 © 1991-1996 by Tim Teulings
  3.  *
  4.  * Dieses Script beinhaltet einige Beispiele für die richtige Ansteuerung
  5.  * von WRITE mittels AREXX.
  6.  *
  7.  * $VER: 1.2 Tim Teulings
  8.  *
  9.  * History:
  10.  *
  11.  * 1.2 Addepted to WRITE 5.0
  12.  */
  13.  
  14. /*say "Dieses Script tut nichts!"
  15. EXIT*/
  16.  
  17. /*
  18.  * Hier wird nachgeschaut, ob WRITE bereits gestartet worden ist.
  19.  * Wenn nicht wird ENV:WRITE ausgelesen und WRITE gestartet.
  20.  */
  21.  
  22. IF ~show('P',"WRITE_V")
  23. THEN DO
  24.   IF Open(File,"ENV:WRITEPATH",r) THEN DO
  25.     WRITEPATH = READLN(File)
  26.     Close(File)
  27.  
  28.     ADDRESS "COMMAND"
  29.     "run >NIL: <NIL: " || WRITEPATH || WRITE
  30.     "SYS:REXXC/WaitForPort <NIL: >NIL: WRITE"
  31.   END
  32.   ELSE DO
  33.     say "Kann WRITE nicht finden!"
  34.     EXIT
  35.   END
  36. END
  37.  
  38. /* Addrssieren des AREXX-Ports */
  39.  
  40. if ~show('P',"WRITE_V") then
  41. do
  42.   say "Dieses Skript arbeitet nicht ohne den Texteditor WRITE!"
  43.   exit 0
  44. end
  45.  
  46. ADDRESS "WRITE_V"
  47.  
  48. OPTIONS RESULTS
  49. SIGNAL ON SYNTAX /* Abfangen von Syntaxfehlern */
  50.  
  51. /*******************************/
  52. /* Öffnen eines neuen Fensters */
  53. /*******************************/
  54.  
  55.  
  56. '&ID:=NewEd("")'
  57. '&PORT:=OpenPort(NUMBER(&ID))'
  58. IF Port = ""
  59. THEN DO
  60.   'MessageOk("REXX-script ' || "'open.wrx'" || ':\nSorry, no more private ports!")'
  61.   EXIT
  62. END
  63.  
  64. /* Ansprechen des privaten Ports dieses neuen Fensters */
  65.  
  66. INTERPRET ADDRESS Port
  67.  
  68. 'Window(0,0,0,0)'
  69.  
  70.  
  71. /********************************************************/
  72. /* Alternative : Locken des aktuellen, aktiven Fensters */
  73. /********************************************************/
  74.  
  75.  
  76. '&ID:=_currentId'    /* hole den ID des aktuellen Fenster,           */
  77.                      /* der von den weiteren Befehlen benötigt wird. */
  78.  
  79. IF ID=0 THEN DO
  80.   'MessageOk("Kein Fenster aktiviert!")'
  81.   EXIT
  82. END
  83.  
  84. '&PORT:=OpenPort(NUMBER(&ID))' /* PrivatePort des aktuellen Fensters öffnen */
  85.  
  86. IF Port="" THEN DO             /* 'OpenPort' gibt "" zurück, wenn Port nicht */
  87.                                /* geöffnet werden konnte                     */
  88.  
  89.   'LockWindow(NUMBER(&ID))'
  90. END
  91. ELSE DO
  92.   INTERPRET ADDRESS Port  /* PrivatePort addressieren.Alle Komandos beziehen */
  93.                           /* sich nun auf das Fenster mit diesem Port        */
  94. END
  95.  
  96.  
  97. /*********************************************/
  98. /* Hier folgt das eigendliche AREXX-Programm */
  99. /*********************************************/
  100.  
  101. /* Schließen des Ports/Unlocken des Fensters */
  102.  
  103. IF Port="" THEN DO
  104.   'LockWindow(0)'
  105. END
  106. ELSE DO
  107.   'ClosePort(NUMBER(&ID))'
  108. END
  109.  
  110. EXIT
  111.  
  112.  
  113. /********/
  114. /* Ende */
  115. /********/
  116.  
  117.  
  118. SYNTAX:
  119.  
  120. SAY "Leider trat ein Fehler auf... Zeile : " SIGL ":" ERRORTEXT(RC)
  121.  
  122. IF Port="" THEN DO
  123.   'LockWindow(0)'
  124. END
  125. ELSE DO
  126.   'ClosePort(NUMBER(&ID))'
  127. END
  128.  
  129. EXIT
  130.